package org.jeecg.modules.user.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;

/**
 * @Description: 用户银行卡管理
 * @Author: jeecg-boot
 * @Date: 2024-04-11
 * @Version: V1.0
 */
@Data
@TableName("wlhy_user_bank")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "wlhy_user_bank对象", description = "用户银行卡管理")
public class WlhyUserBank implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String id;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
    /**
     * 创建日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private java.util.Date createTime;
    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人")
    private java.lang.String updateBy;
    /**
     * 更新日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private java.util.Date updateTime;
    /**
     * 所属部门
     */
    @ApiModelProperty(value = "所属部门")
    private java.lang.String sysOrgCode;
    /**
     * 用户
     */
    @Excel(name = "用户", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @ApiModelProperty(value = "用户")
    private java.lang.String userId;
    /**
     * 开户名
     */
    @Excel(name = "开户名", width = 15)
    @ApiModelProperty(value = "开户名")
    @NotBlank(message = "开户名不能为空")
    private java.lang.String bankHolder;
    /**
     * 银行卡号
     */
    @NotBlank(message = "银行卡号不能为空")
    @Excel(name = "银行卡号", width = 15)
    @ApiModelProperty(value = "银行卡号")
    @Pattern(regexp = "^([1-9]{1})(\\d{14}|\\d{18})$", message = "银行卡号不合法")
    private java.lang.String bankCardNo;
    /**
     * 开户人身份证号
     */
    @NotBlank(message = "开户人身份证号不能为空")

    @Excel(name = "开户人身份证号", width = 15)
    @ApiModelProperty(value = "开户人身份证号")
    @Pattern(regexp = "^[1-9]\\d{5}(19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}(\\d|X|x)$", message = "开户人身份证号不合法")

    private java.lang.String bankIdNo;
    /**
     * 开户人手机号
     */
    @NotBlank(message = "开户人手机号不能为空")

    @Excel(name = "开户人手机号", width = 15)
    @ApiModelProperty(value = "开户人手机号")
    @Pattern(regexp = "^1[3456789]\\d{9}$", message = "开户人手机号不合法")
    private java.lang.String bankPhoneNo;
    /**
     * 开户行
     */
    @Excel(name = "开户行", width = 15)
    @ApiModelProperty(value = "开户行")
    private java.lang.String bankName;

 /**
     * 开户行
     */
    @NotBlank(message = "开户行不能为空")
    @Excel(name = "开户行", width = 15)
    @ApiModelProperty(value = "开户行")
    private java.lang.String bankId;

    /**
     * 银行卡种类
     */
    @Excel(name = "银行卡种类", width = 15)
    @ApiModelProperty(value = "银行卡种类")
    private java.lang.String bankKind;
    /**
     * 银行卡类型
     */
    @Excel(name = "银行卡类型", width = 15)
    @ApiModelProperty(value = "银行卡类型")
    private java.lang.String bankType;
    /**
     * 银行卡编码
     */
    @Excel(name = "银行卡编码", width = 15)
    @ApiModelProperty(value = "银行卡编码")
    private java.lang.String bankCode;
    /**
     * 状态
     */
    @Excel(name = "状态", width = 15, dicCode = "row_status")
    @Dict(dicCode = "row_status")
    @ApiModelProperty(value = "状态")
    private java.lang.String status;
    /**
     * 是否为默认
     */
    @Excel(name = "是否为默认", width = 15)
    @ApiModelProperty(value = "是否为默认")
    private java.lang.Integer izDefault;
}
